<?php
class ProveedoresController extends AppController {
    var $name = 'Proveedores';
    var $appModule = 'Logistica';
    var $helpers = array('Html', 'Form', 'Javascript', 'Codigo','GetList', 'adcReporter','TextDate');
    var $components = array('RequestHandler');
    var $uses = array('Proveedore');

    public function index($q = null) {        
        //definición de condiciones estándares
        $conditions['Proveedore.activo'] = 1;
        $conditions['Tercero.empresa_id'] = $this->_usuario['Tercero']['empresa_id'];

        //verificando si se hizo busqueda por formulario
        $q = $this->getBusqueda($this->data['Proveedore']['busqueda']);
        //armando condiciones si q tiene valor
        if(!empty($q)){
                $conditions['OR'] = array(
                    'Proveedore.codigo SIMILAR TO'=>$this->likeAtCenter($q),
                    'Tercero.ruc SIMILAR TO'=>$this->likeAtCenter($q),
                    'Tercero.razon_social SIMILAR TO'=>$this->likeAtCenter($q)
                );
                $conditions['OR'][0] = '(Tercero.apellido_paterno||\' \'||Tercero.apellido_materno||\', \'||Tercero.nombres) SIMILAR TO \''.$this->likeAtCenter($q).'\'';
        }

        //ejecutando query
        $this->Proveedore->Behaviors->attach('Containable');
        //$this->Boleta->DocumentoVenta->contain($conditions);
        $this->paginate['Proveedore'] = array(
            'limit'=>$this->limite,
            'order'=>array('Tercero.ruc' =>'asc'),
            'conditions'=>$conditions,
            'contain' => array(
                'Tercero'=>array(
                    'fields'=>array(
                        'id',
                        'razon_social',
                        'apellido_paterno',
                        'apellido_materno',
                        'nombres',
                        'direccion',
                        'ruc',
                        'numero_documento',
                        'tipo_documento_id'
                    ),
                    'TipoDocumento'=>array(
                        'fields'=>array('id','simbolo')
                    )
                ),
            )
        );
        $proveedores = $this->paginate('Proveedore');

        //estableciendo valores para vista
        if(!empty($this->params['url']['limite'])){
                $this->limite = $this->params['url']['limite'];
        }
        $this->data['Proveedore']['pagesize'] = $this->paginate['limite'] = $this->limite;
        $this->data['Proveedore']['busqueda'] = str_replace('|',';',$q);
        $this->set('q',$q);
        $this->set('Proveedores',$proveedores);
        $this->set('limite',$this->limite);
    }

    public function view($id = null) {
            $this->Proveedore->recursive = 2;
            if (!$id) {
                    $this->Session->setFlash(__('Id de Proveedore no valido.', true));
                    $this->redirect(array('action'=>'index'));
            }
            $this->set('proveedore', $this->Proveedore->read(null, $id));
    }

    public function ajax(){
        if ($this->RequestHandler->isAjax()) {
            Configure::write('debug', 0); //quito el debugger
            $this->autoRender = false;//desabilito el auto dibujado
            $this->autoLayout = false;//desabilito el auto layout
            if (!empty($this->params['form'])){ // compruebo si existen parametros en el querystring
                switch ($this->params['form']['action']){
                    case 1:
						$form = $this->params['form'];

						$conditions = array(
							'Proveedore.activo'=>true,
							'Proveedore.codigo'=>$form['ProveedoreCodigo']);

						$this->loadModel('Proveedore');
						$data = $this->Proveedore->find('first', array(
							'conditions'=>$conditions,
							'contain'=>array('Tercero'),
							)
						);

						$result = $data;

                        break;
                    case 2: // 2-buscar por ruc
                        $data = $this->Proveedore->Tercero->find('first',
							array('conditions'=>
								array('Tercero.ruc'=>$this->params['form']['TerceroRuc'])));
                        $result = $data['Tercero'];
                        break;
                    case 3: //dialogo buscar tercero
                    	$q = $this->params['form']['q'];

                    	$data = $this->Proveedore->Tercero->find('all',array(
                    		'recursive'=>-1,
                    		'conditions'=>array(
                    			'OR'=>array(
                    				'Tercero.ruc like'=>"$q%",
                    				'Tercero.numero_documento like'=>"$q%",
                    				'Tercero.razon_social ilike'=>$this->likeAtCenter(str_replace(' ','%',$q)),
                    				"(Tercero.apellido_paterno || ' ' || Tercero.apellido_materno || ' ' || Tercero.nombres) iLIKE"=>$this->likeAtCenter(str_replace(' ','%',$q)),
									"(Tercero.nombres || ' ' || Tercero.apellido_paterno || ' ' || Tercero.apellido_materno) iLIKE"=>$this->likeAtCenter(str_replace(' ','%',$q)),
                    			),
                    		)
                    	));
                    	$result = $data;
                    	$data['Tercero'] = $data;
                    	break;
                    case 4:
                            $form = $this->params['form'];
                            $conditions = array(
                                    'Proveedore.activo'=>true,
                                    'Proveedore.codigo'=>$form['ProveedoreCodigo']);

                            $this->loadModel('Proveedore');
                            $data = $this->Proveedore->find('first', array(
                                    'fields'=>array(
                                            'Proveedore.codigo',
                                            'Tercero.razon_social',
                                            'Tercero.direccion',
                                            'Tercero.ruc',
                                            'Tercero.razon_social',
                                            'Tercero.apellido_paterno',
                                            'Tercero.apellido_materno',
                                            'Tercero.nombres',
                                            'Proveedore.nombre_comercial',
                                            ),
                                    'conditions'=>$conditions,
                                    'contain'=>array('Tercero'),
                                    )
                            );
                            // var_dump($form['TerceroTipoDocumentoId']==0 && strlen($form['ProveedoreCodigo'])!=11);die('');
                            if($form['TerceroTipoDocumentoId']==0 && strlen($form['ProveedoreCodigo'])!=11){
                                $datos['ruc']=$data['Tercero']['ruc'];
                                $datos['razon_social']=$data['Tercero']['razon_social'];
                                $datos['direccion']=$data['Tercero']['direccion'];
                                $datos['apellido_paterno']=$data['Tercero']['apellido_paterno'];
                                $datos['apellido_materno']=$data['Tercero']['apellido_materno'];
                                $datos['nombres']=$data['Tercero']['nombres'];
                                $datos['nombre_comercial']=$data['Proveedore']['nombre_comercial'];								
                                $datos['estado']='';
                            }else{
                                $this->loadModel('Tercero');
                                $datos=$this->Tercero->datosSunat($form['ProveedoreCodigo']);
                                $datos['fecha_nacimiento'] = $datos['fecha_nacimiento']=='-'?'':$datos['fecha_nacimiento']='';
                                if($datos['error']){
                                    $datos['ruc']='';
                                    $datos['razon_social']='';
                                    $datos['direccion']='';
                                    $datos['apellido_paterno']='';
                                    $datos['apellido_materno']='';
                                    $datos['nombres']='';
                                    $datos['nombre_comercial']='';
                                    $datos['estado']='';
                                    $datos['fecha_nacimiento']='';
                                }
                            }
                            $data=$datos;
                            // print_r($datos);die('');						
                            // if(!isset($data['Proveedore']['codigo'])){
                                    // $this->loadModel('PadronDetalle');
                                    // $data=$this->PadronDetalle->find('all',array(
                                            // 'conditions'=>array('ruc'=>$form['ProveedoreCodigo'])
                                    // ));

                                    // if(isset($data[0]['PadronDetalle'])){

                                            // $data['Padron']['es_no_habido']=0;
                                            // $data['Padron']['es_no_hallado']=0;
                                            // $data['Padron']['buen_contribuyente']=0;
                                            // $data['Padron']['es_agente_retencion']=0;
                                            // $data['Padron']['es_agente_percepcion']=0;
                                            // foreach($data as $d){
                                                    // if($d['PadronDetalle']['padron_id']==4){
                                                            // $data['Padron']['es_no_habido']=1;
                                                            // $data['Padron']['es_no_hallado']=1;
                                                    // }
                                                    // if($d['PadronDetalle']['padron_id']==3){
                                                            // $data['Padron']['buen_contribuyente']=1;
                                                            // $data['Padron']['es_agente_retencion']=1;
                                                            // $data['Padron']['es_agente_percepcion']=1;
                                                    // }
                                                    // if($d['PadronDetalle']['padron_id']==2){
                                                            // $data['Padron']['es_agente_retencion']=1;
                                                            // $data['Padron']['es_agente_percepcion']=1;
                                                    // }
                                                    // if($d['PadronDetalle']['padron_id']==1){
                                                            // $data['Padron']['es_agente_retencion']=1;
                                                            // $data['Padron']['es_agente_percepcion']=1;
                                                    // }
                                            // }
                                            // unset($data[0]);
                                    // }
                            // }
                            $result = $data;
                            break;
                }
                if($data){
                    $this->header('Content-Type: application/json');
                    echo json_encode($result);
					
                }
                else
                    echo '';
            }
            exit();
        }
    }

    public function add() {
        if (!empty($this->data)) {
                $this->Proveedore->create();
                $this->data['Tercero']['empresa_id'] = $this->empresaId(); // cambiar por session
                $this->data['Tercero']['centro_dist_id'] = $this->centroDistId();
                $this->data['Proveedore']['empresa_id'] = $this->empresaId(); // cambiar por session
                $this->data['Proveedore']['usuario_creacion_id'] = $this->_usuario['id'];
                $this->data['Proveedore']['fecha_creacion'] = 'now()';
                $this->data['Proveedore']['activo'] = true; // tercero activo

                // $this->data['Proveedore']['nombre_comercial']=$this->data['Tercero']['razon_social'];

                $c = $this->Proveedore->find('count',array(
                        'conditions'=>array(
                                'Tercero.empresa_id'=>$this->empresaId(),
                                'activo'=>true,
                                'codigo'=>$this->data['Proveedore']['codigo']
                        ),
                ));
                $flag=true;
                if ($c > 0){
                        $this->Session->setFlash('El codigo de proveedor "'.$this->data['Proveedore']['codigo'].'" ya esta registrado');
                        $flag=false;
                }
                if ($this->data['Proveedore']['activo']==''){
                        $this->Session->setFlash('El proveedor debe tener codigo');
                        $flag=false;
                }

                if($flag){
                    $data = $this->Padrone->findFor($this->data['Tercero']['ruc']);
                    if ($data != false){
                        $this->data['Proveedore']['buen_contribuyente'] = $data['Padrone']['para_buen_contribuyente'];
                        $this->data['Proveedore']['es_agente_retension'] = $data['Padrone']['para_retension'];
                        $this->data['Proveedore']['es_agente_percepcion'] = $data['Padrone']['para_percepcion'];
                        $this->data['Proveedore']['es_no_habido'] = $data['Padrone']['para_no_habido'];
                        $this->data['Proveedore']['es_no_hallado'] = $data['Padrone']['para_no_hallado'];
                    } else {
                        $this->data['Proveedore']['buen_contribuyente'] = false;
                        $this->data['Proveedore']['es_agente_retension'] = false;
                        $this->data['Proveedore']['es_agente_percepcion'] = false;
                        $this->data['Proveedore']['es_no_habido'] = false;
                        $this->data['Proveedore']['es_no_hallado'] = false;
                    }

                    $this->Proveedore->begin();
                    if ($this->Proveedore->Tercero->save($this->data['Tercero'])) {
                        $this->data['Proveedore']['id'] = $this->Proveedore->Tercero->id;
                        if ($this->Proveedore->save($this->data['Proveedore'])) {
                            $this->Proveedore->commit();
                            $this->Session->setFlash(__('El Proveedor ha sido guardado', true));
                            $this->redirect(array('action'=>'index'));
                        } else {
                            $this->Proveedore->rollback();
                            $this->Session->setFlash(__('El Proveedor no ha sido guardado. Por favor, intente nuevamente.', true));
                            $this->set('errores', array(
                                    $this->Proveedore->validationErrors
                            ));
                        }
                    } else {
                        $this->Proveedore->rollback();
                        $this->Session->setFlash(__('El Proveedore no ha sido guardado. Por favor, intente nuevamente.', true));
                        $this->set('errores',array(
                                $this->Proveedore->Tercero->validationErrors
                        ));
                    }
                }
            }

        $tds = $this->Proveedore->Tercero->TipoDocumento->find('all',array(
            'order' => 'id',
            'fields'=>array('id','simbolo'),
            'recursive'=>-1
        ));        
        
        $tipoDocumentos = array();
        foreach($tds as $v){
            $tipoDocumentos[$v['TipoDocumento']['id']] = sprintf('%s %s',$v['TipoDocumento']['id'],$v['TipoDocumento']['simbolo']);
        }
        
        $afps = $this->Proveedore->Afp->find('list',array(
                    'order' => 'id',
                    'fields'=>array('id','descripcion'),
                    'recursive'=>-1
                ));
        
        $this->set(compact('tipoDocumentos','afps'));
    }

    public function edit($id = null) {
        if (!$id && empty($this->data)) {
            $this->Session->setFlash(__('Proveedor invalido', true));
            $this->redirect(array('action'=>'index'));
        }

        if (!empty($this->data)) {
            $this->data['Proveedore']['usuario_modificacion_id'] = '1'; // cambiar por session
            $this->data['Proveedore']['fecha_modificacion'] = 'now()';
			$this->data['Tercero']['empresa_id'] = $this->empresaId(); // cambiar por session
			// $this->data['Proveedore']['nombre_comercial']=$this->data['Tercero']['razon_social'];

            $c = $this->Proveedore->find('count',array(
                'conditions'=>array(
                    'Tercero.empresa_id'=>$this->empresaId(),
                    'Proveedore.activo'=>true,
                    'Proveedore.id <>'=>$this->data['Proveedore']['id'],
                    'Proveedore.codigo'=>$this->data['Proveedore']['codigo']
                ),
            ));

            if ($c > 0){
                $this->Session->setFlash('El codigo ya "'.$this->data['Proveedore']['codigo'].'" esta en uso');
            } else {
//                $data = $this->Padrone->findFor($this->data['Tercero']['ruc']);
//                if ($data != false){
//                    $this->data['Proveedore']['buen_contribuyente'] = $data['Padrone']['para_buen_contribuyente'];
//                    $this->data['Proveedore']['es_agente_retension'] = $data['Padrone']['para_retension'];
//                    $this->data['Proveedore']['es_agente_percepcion'] = $data['Padrone']['para_percepcion'];
//                    $this->data['Proveedore']['es_no_habido'] = $data['Padrone']['para_no_habido'];
//                    $this->data['Proveedore']['es_no_hallado'] = $data['Padrone']['para_no_hallado'];
//                } else {
//                    $this->data['Proveedore']['buen_contribuyente'] = false;
//                    $this->data['Proveedore']['es_agente_retension'] = false;
//                    $this->data['Proveedore']['es_agente_percepcion'] = false;
//                    $this->data['Proveedore']['es_no_habido'] = false;
//                    $this->data['Proveedore']['es_no_hallado'] = false;
//                }

                $this->Proveedore->begin();
                $done = true;
                if ($this->Proveedore->Tercero->save($this->data['Tercero'])) {
                    $done = $this->Proveedore->save($this->data['Proveedore']);
                } else $done = false;
                if ($done){
                    $this->Proveedore->commit();
                    $this->Session->setFlash(__('El Proveedore ha sido guardado.', true));
                    $this->redirect(array('action'=>'index'));
                } else {
                    $this->Proveedore->rollback();
                    $this->Session->setFlash(__('El Proveedore no ha sido guardado. Por fravor, intente nuevamente.', true));
                }
            }
        }
        if (empty($this->data)) {
            $this->data = $this->Proveedore->read(null, $id);
        }

        $tds = $this->Proveedore->Tercero->TipoDocumento->find('all',array(
            'order' => 'id',
            'fields'=>array('id','simbolo'),
            'recursive'=>-1
        ));
        $tipoDocumentos = array();
        foreach($tds as $v){
            $tipoDocumentos[$v['TipoDocumento']['id']] = sprintf('%s %s',$v['TipoDocumento']['id'],$v['TipoDocumento']['simbolo']);
        }
        $afps = $this->Proveedore->Afp->find('list',array(
                    'order' => 'id',
                    'fields'=>array('id','descripcion'),
                    'recursive'=>-1
                ));
        
        $this->set(compact('tipoDocumentos','afps'));
    }

    public function delete($id = null,$behavior=true) {
        if (!$id) {
            $this->Session->setFlash(__('Id de Proveedore invalido', true));
            $this->redirect(array('action'=>'index'));
        }
        $result = $this->Proveedore->save(array('id'=>$id, 'activo'=>'0','usuario_borrado_id'=>$this->_usuario['id'],'fecha_borrado'=>'now()'));
        if($result){
            if($behavior){
                $this->Session->setFlash(__('El Proveedore fue eliminado', true));
                $this->redirect(array('action'=>'index'));
            } else {
                return true;
            }
        } else {
            if($behavior){
                $this->Session->setFlash(__('Error: Proveedor no fue eliminado', true));
                $this->redirect(array('action'=>'index'));
            } else {
                return false;
            }
        }
    }

    public function process(){
        $result = true;
        if(!empty($this->data)){
            foreach($this->data as $dato){
                if($dato['id']!='0'){
                    if(isset($this->params['form']['delete'])){
                        $result = $result && $this->delete($dato['Proveedore']['id'],false);
                    }
                }
            }

            if($result){
                $this->Session->setFlash(__('Los Proveedores fueron eliminados', true));
            } else {
                $this->Session->setFlash(__('Error: Alguno de los Proveedores no fueron eliminados', true));
            }
        } else {
            $this->Session->setFlash(__('Advertencia: No selecciono ningun proveedor', true));
        }
        $this->redirect(array('action'=>'index'),null,true);

    }

    public function get_proveedores($busqueda=null){
        //opciones por defecto
        $max_registros = 20;
        $fields = array('Proveedore.id','Proveedore.codigo','Proveedore.nombre_comercial','Tercero.razon_social','Tercero.ruc','Tercero.apellido_paterno','Tercero.apellido_materno','Tercero.nombres');
        if(!empty($this->params['form'])){
                if(!empty($this->params['form']['max_registros'])){$max_registros=$this->params['form']['max_registros'];}
                if(!empty($this->params['form']['fields'])){$fields=explode(',',$this->params['form']['fields']);}
        }
        if ($this->RequestHandler->isAjax()) {
            Configure::write('debug', 0); //quito el debugger
            $this->autoRender = false;//desabilito el auto dibujado
            $this->autoLayout = false;//desabilito el auto layout
            if(empty($busqueda)){
                    $data = array('error'=>'debe especificar valores para la busqueda');
            } else {
                $data = $this->Proveedore->find('all',array(
                        'conditions'=>array('OR'=>array(
                                'Proveedore.codigo iLIKE'=>$busqueda.'%',
                                'Proveedore.nombre_comercial iLIKE'=>$busqueda.'%',
                                'Tercero.razon_social iLIKE'=>$busqueda.'%',
                                'Tercero.ruc iLIKE'=>$busqueda.'%',
                                "(Tercero.apellido_paterno||' '||Tercero.apellido_materno||', '||Tercero.nombres) iLIKE"=>$busqueda.'%',
                                "(Tercero.apellido_paterno||' '||Tercero.nombres) iLIKE"=>$busqueda.'%',
                                "(Tercero.nombres ||' '|| Tercero.apellido_paterno) iLIKE"=>$busqueda.'%'
                                )
                        ),
                        'recursive'=>1,
                        'limit' =>$max_registros,
                        'fields'=>$fields
                ));

            }
            $this->header('Content-Type: application/json');
            echo json_encode($data);
            //exit();
        } else {
            //Configure::write('debug', 0); //quito el debugger
            $this->autoRender = false;//desabilito el auto dibujado
            $this->autoLayout = false;//desabilito el auto layout

            if($busqueda){
                ///echo $busqueda;
                $data = $this->Proveedore->find('all',array(
                        'conditions'=>array('OR'=>array(
							'Proveedore.codigo iLIKE'=>$busqueda.'%',
							'Proveedore.nombre_comercial iLIKE'=>$busqueda.'%',
							'Tercero.razon_social iLIKE'=>$busqueda.'%',
							'Tercero.ruc iLIKE'=>$busqueda.'%',
							"(Tercero.apellido_paterno||' '||Tercero.apellido_materno||', '||Tercero.nombres) iLIKE"=>$busqueda.'%',
							"(Tercero.apellido_paterno||' '||Tercero.nombres) iLIKE"=>$busqueda.'%',
							"(Tercero.nombres ||' '|| Tercero.apellido_paterno) iLIKE"=>$busqueda.'%'
							)
                        ),
                        'recursive'=>1,
                        'limit' => $max_registros,
                        'fields'=>$fields
                ));
                //return $data;
                print_r($data);
            } else {
                echo 'Solo peticiones AJAX';;
                //return false;
            }
        }
    }

    public function buscar($q = null){
        if(!empty($q)){
            $this->data['Proveedore']['busqueda'] = $q;
            $this->data['Proveedore']['opciones']= array(
                    'Proveedore.nombre_comercial', 'Tercero.razon_social',
                    'Tercero.apellido_paterno|Tercero.apellido_materno|Tercero.nombres'
            );
        } else if (!empty($this->params['url']['q'])){
            $this->data['Proveedore']['busqueda'] = $this->params['url']['q'];
            $this->data['Proveedore']['opciones']= array(
                   'Proveedore.nombre_comercial', 'Tercero.razon_social',
                   'Tercero.apellido_paterno|Tercero.apellido_materno|Tercero.nombres'
            );
        } else if(!empty($this->params['form']['q'])){
            $this->data['Proveedore']['busqueda'] = $this->params['form']['q'];
            $this->data['Proveedore']['opciones']= array(
                    'Proveedore.nombre_comercial', 'Tercero.razon_social',
                    'Tercero.apellido_paterno|Tercero.apellido_materno|Tercero.nombres'
            );
        }

        if(	!empty($this->data) &&
                !empty($this->data['Proveedore']['busqueda']) &&
                count($this->data['Proveedore']['opciones'])>0 ){

            $busqueda = $this->data['Proveedore']['busqueda'];
            foreach($this->data['Proveedore']['opciones'] as $opcion){
                if(count(explode('|',$opcion))>1){
                    $fields["(".implode("|| ' ' ||",explode('|',$opcion)).") iLIKE"] = '%'.$busqueda.'%';
                } else {
                    $fields[$opcion. ' iLIKE'] = '%'.$busqueda.'%';
                }
            }
            $fields['Proveedore.codigo'] = $busqueda;
            $fields['Tercero.ruc'] = $busqueda;
            $proveedores = $this->Proveedore->find('all',array(
                    'conditions'=>array(
                            'Proveedore.activo'=>true,
                            'Tercero.empresa_id'=> $this->empresaId(),
                            'OR'=>$fields
                    ),
                    'recursive'=>1,
                    'fields'=>array(
                            'Proveedore.id',
                            'Proveedore.codigo',
                            'Proveedore.nombre_comercial',
                            'Tercero.direccion',
                            'Tercero.razon_social',
                            'Tercero.ruc',
                            'Tercero.apellido_paterno',
                            'Tercero.apellido_materno',
                            'Tercero.nombres',
                            'Tercero.telefono1',
                            'Tercero.tipo_documento_id',
                            'Tercero.numero_documento',
                            'Proveedore.representante',
                            'Proveedore.direccion2',
                            'Proveedore.cuenta_bancaria1',
                            'Proveedore.cuenta_bancaria2',                            
                            'Proveedore.extranjero'),
                    'order'=>array('Proveedore.nombre_comercial ASC','Tercero.razon_social ASC'),
                    'limit'=>100 ));

            $res = array();
            if(!empty($this->params['url']['autocomplete']) || !empty($this->params['form']['autocomplete'])){
                foreach($proveedores as $value){
                    $res[] = array('value'=>$value['Proveedore']['codigo'], 'display'=>'<span style="color:gray;font-size:.9em">'.$value['Proveedore']['codigo'].'</span><div style="float:right;font-size:.8em">'. $value['Tercero']['razon_social'] .'</div>');
                }
                $proveedores = $res;
            }
            if ($this->RequestHandler->isAjax()){
                $this->_ajaxify($proveedores);
            } 
            else {
                $this->set('proveedores',$proveedores);
            }
        }
    }

    public function listadoProveedores($vinculadoDocCompra = false){

        $sql = '
                  select 
                      tb."Proveedor__id",
                      tb."Proveedor__ruc",
                      tb."Proveedor__nombre_comercial",
                      tb."Proveedor__razon_social",
                      tb."Proveedor__telefono",
                      tb."Proveedor__direccion",
                      tb."Proveedor__email"
                     from (
                             select
                               p.id  				as "Proveedor__id",
                               t.ruc 				as "Proveedor__ruc",
                               p.nombre_comercial             as "Proveedor__nombre_comercial",
                               t.razon_social 		as "Proveedor__razon_social",
                               t.telefono1 			as "Proveedor__telefono",
                               t.email			as "Proveedor__email",
                               case when t.direccion = \'\' then p.direccion2 else t.direccion end as "Proveedor__direccion",
                               p.vende as "Proveedor__vende"
                             from logistica.proveedores p
                             left join maestros.terceros t on t.id = p.id
                             where
                                 p.activo = true
                                 and p.empresa_id = %1$d
                             order by
                                 "Proveedor__razon_social"
                         ) tb

               ';

        if($vinculadoDocCompra){

            $sql .= 'inner join logistica.documento_compras dc on dc.proveedor_id = tb."Proveedor__id" and dc.empresa_id = %1$d  and dc.codigo_documento_id = 160
                     group by
                           tb."Proveedor__id",
                           tb."Proveedor__ruc",
                           tb."Proveedor__nombre_comercial",
                           tb."Proveedor__razon_social",
                           tb."Proveedor__telefono",
                           tb."Proveedor__direccion",
                           tb."Proveedor__email"';
        }

        $sql .= ' order by 
                      tb."Proveedor__razon_social"';

        $data = $this->Proveedore->query(sprintf($sql, $this->empresaId()));
        $this->reporte_html();       
        $this->set(compact('data'));           
    }  

}
?>